'use strict';

module.exports = () => {
    return async (ctx, next) => {
        const roles = (ctx.curAdminUser && ctx.curAdminUser.roles) || [];
        const request = ctx.request.body;
        const controller = ctx.header.controller;
        ctx.logger.debug('校验权限，请求参数：', request);

        const isRights = ['/gis/getTagIdByObjectCode',
            '/h5/getH5ActiveList',
            '/h5/getH5ActiveCaculate'
        ];
        ctx.logger.debug('校验权限isRights,controller', isRights, '------', controller);
        ctx.logger.debug('修改后的请求参数：', request);
        if (isRights.indexOf(controller) == -1) {

            ctx.logger.info('无此操作权限，请联系管理员分配权限。');
            ctx.response.failByCode('0005', 403);
            return;
        }

        // 判断是否有权限访问
        const isHave = roles.find(item => {
            return item == requetsUrl;
        });
        if (!isHave) {
            ctx.logger.info('无此操作权限，请联系管理员分配权限。');
            ctx.response.failByCode('0005', 403);
            return;
        }
        // 进入下一个中间件
        await next();
    };
};